'''编写一个函数计算传入字符串中数字、字母、空格以及其他字符的个数。'''
def countStr(s:'str'=''):
    #统计字符个数
    engChr,numChr,empChr,elsChr = 0,0,0,0
    for i in s:
        if ('a' <= i <= 'z') or ('A' <= i <= 'Z'):
           engChr += 1
        elif '0' <= i <= '9':
            numChr += 1
        elif i == ' ':    #字符串中可直接用空格，无需使用\0转义
            empChr += 1
        else:
            elsChr += 1
    return (engChr,numChr,empChr,elsChr)

txt = '''0是一个自然数
有一点值得注意的是，皮亚诺最初对这个数使用的符号是1，而不是0。
这仅仅只是符号上的差别而已，但是0和1在别的领域有很多不同的意义，（比如0往往被用作加法单位元）。

作者：Captain 贺
链接：https://www.zhihu.com/question/291062803/answer/1405216576
来源：知乎
著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。
'''
print(countStr(txt))
